﻿Imports Microsoft.VisualBasic

Public Class AulaCRN

    Public Sub InsetarAula(ByVal objAula As Aula)

        If objAula Is Nothing Then
            Throw New Exception("El objeto no puede ser nulo")
        End If

        If String.IsNullOrEmpty(objAula.Nombre) Then
            Throw New Exception("El nombre del aula no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objAula.Estado) Then
            Throw New Exception("El Estado del aula no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objAula.Descripcion) Then
            Throw New Exception("El Descripcion del aula no puede ser nulo ni vacio")
        End If

        Dim adapter As AulaDSTableAdapters.AulaTableAdapter = New AulaDSTableAdapters.AulaTableAdapter()

        Dim aulaId? As Integer = 0

        adapter.Insert(aulaId, objAula.Nombre, objAula.Estado, objAula.Descripcion)

        If aulaId Is Nothing Or aulaId.Value <= 0 Then
            Throw New Exception("El query se ejecuto correctamente pero no se genero la llave primaria")
        End If

        objAula.AulaId = aulaId.Value

    End Sub

    Public Sub ActualizarAula(ByVal objAula As Aula)

        If objAula Is Nothing Then
            Throw New Exception("El objeto no puede ser nulo")
        End If

        If objAula.AulaId <= 0 Then
            Throw New Exception("El id del aula no puede ser menor o igual que cero")
        End If

        If String.IsNullOrEmpty(objAula.Nombre) Then
            Throw New Exception("El nombre del aula no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objAula.Estado) Then
            Throw New Exception("El Estado del aula no puede ser nulo ni vacio")
        End If

        If String.IsNullOrEmpty(objAula.Descripcion) Then
            Throw New Exception("El Descripcion del aula no puede ser nulo ni vacio")
        End If

        Dim adapter As AulaDSTableAdapters.AulaTableAdapter = New AulaDSTableAdapters.AulaTableAdapter()

        adapter.Update(objAula.AulaId, objAula.Nombre, objAula.Estado, objAula.Descripcion)

    End Sub

    Public Sub EliminarAula(ByVal aulaId As Integer)

        If aulaId <= 0 Then
            Throw New Exception("El id del aula no puede ser menor o igual que cero")
        End If

        Dim adapter As AulaDSTableAdapters.AulaTableAdapter = New AulaDSTableAdapters.AulaTableAdapter()

        adapter.Delete(aulaId)

    End Sub

    Public Function GetAulaById(ByVal aulaId As Integer) As Aula

        If aulaId <= 0 Then
            Throw New Exception("El id del aula no puede ser menor o igual que cero")
        End If

        Dim adapter As AulaDSTableAdapters.AulaTableAdapter = New AulaDSTableAdapters.AulaTableAdapter()

        Dim tabla As AulaDS.AulaDataTable = adapter.GetAulaById(aulaId)

        If tabla Is Nothing Or tabla.Rows.Count <= 0 Then
            Throw New Exception("El query se ejecuto correctamente pero no devolvio valores")
        End If

        Dim row As AulaDS.AulaRow = tabla(0)

        Dim objAula As Aula = New Aula(row.aulaId, row.nombre, row.estado, row.descripcion)

        Return objAula

    End Function

    Public Function GetAulaBySearch(ByVal searchTerm As Integer) As List(Of Aula)

        Dim lista As List(Of Aula) = New List(Of Aula)()

        Dim adapter As AulaDSTableAdapters.AulaTableAdapter = New AulaDSTableAdapters.AulaTableAdapter()

        Dim tabla As AulaDS.AulaDataTable = adapter.GetAulaBySearch(searchTerm)

        If tabla Is Nothing Then
            Throw New Exception("El query se ejecuto correctamente pero no devolvio valores")
        End If

        For Each row As AulaDS.AulaRow In tabla
            Dim objAula As Aula = New Aula(row.aulaId, row.nombre, row.estado, row.descripcion)
            lista.Add(objAula)
        Next

        Return lista

    End Function


End Class
